iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
Mobile Development

從零開始學習 Jetpack Compose系列 第 2

從零開始學習 Jetpack Compose Day1 - Compose簡介

  • 分享至 

  • xImage
  •  

什麼是Jetpack Compose

Jetpack Compose為目前Android 推薦使用的UI Framework,與傳統的XML不同,Compose 提供了宣告式UI方法,透過Composable Functions來定義UI。這種方式讓UI跟狀態產生關聯,透過狀態的變化來自動觸發UI的更新,無需手動操作。

  1. Android 官方推薦:
  2. 取代XML
  3. 宣告式UI Framework

什麼是宣告式UI(Declarative UI)

只需描述當前應該顯示什麼,而不需要詳細說明如何具體更新介面。這種方法專注於描述UI的最終狀態,讓系統自動處理狀態變化時的UI更新。

例如:UI 會根據 name 變化自動更新。

@Composable
fun Greeting(name: String) {
    Text(text = "Hello, $name!")
}

宣告式UI與命令式UI(Imperative UI)差別

命令式語法在執行事件時,可以選擇指定的物件來更改其狀態。但在宣告式中,因為無法取得指定物件,因此需要事前將狀態與指定物件(UI)綁定,則以在狀態變化時自動更新UI。

範例:

命令式:btn在執行事件時可以指定物件(tv)來更改其狀態。

binding.btn.setOnClickListener {
		binding.tv.text = "btn onclick"
}

宣告式:Text事先就與mName這個變數進行綁定,因此在mName進行變化時自動更新UI。

@Composable
fun Greeting(modifier: Modifier = Modifier) {
    val mName = remember { mutableStateOf("World") }
    Column {
        Text(
            text = "Hello ${mName.value}!",
            modifier = modifier
        )
        Button(
            onClick = {
                mName.value = "Android"
            }
        ) {
            Text("Submit")
        }
    }
}

下一篇會開始Android Studio 建立Compose 專案以及常用的功能


上一篇
從零開始學習 Jetpack Compose Day0 - 前言
下一篇
從零開始學習 Jetpack Compose Day2 - Compose Hello World
系列文
從零開始學習 Jetpack Compose12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言